// 在计算机科学中，偏函数应用（Partial Application）是指固定一个函数的某些参数，
// 然后产生另一个更小元的函数。而所谓的元是指函数参数的个数，比如含有一个参数的函数被称为一元函数。

// 偏函数应用（Partial Application）很容易与函数柯里化混淆，它们之间的区别是：
// 偏函数应用是固定一个函数的一个或多个参数，并返回一个可以接收剩余参数的函数；
// 柯里化是将函数转化为多个嵌套的一元函数，也就是每个函数只接收一个参数。

// 第一版
// 似曾相识的代码
function partial(fn) {
	var args = [].slice.call(arguments, 1);
	return function() {
		var newArgs = args.concat([].slice.call(arguments));
		return fn.apply(this, newArgs);
	};
}
